package com.sybil.ot.dominio;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

@Embeddable
public class ResponsablePasoPK implements Serializable {

   private String claveFlujo;
   private String clavePaso;
   private String claveUsuario;

   public ResponsablePasoPK() {
   }

   public ResponsablePasoPK(String claveFlujo, String clavePaso, String claveUsuario) {
      this.claveFlujo = claveFlujo;
      this.clavePaso = clavePaso;
      this.claveUsuario = claveUsuario;
   }

   @Basic(optional = false)
   @NotNull
   @Size(min = 1, max = 4)
   @Column(name = "REPF_FLUJ_CLAVE")
   public String getClaveFlujo() {
      return claveFlujo;
   }

   public void setClaveFlujo(String claveFlujo) {
      this.claveFlujo = claveFlujo;
   }

   @Basic(optional = false)
   @NotNull
   @Size(min = 1, max = 4)
   @Column(name = "REPF_PAFL_CLAVE")
   public String getClavePaso() {
      return clavePaso;
   }

   public void setClavePaso(String clavePaso) {
      this.clavePaso = clavePaso;
   }

   @Basic(optional = false)
   @NotNull
   @Size(min = 1, max = 15)
   @Column(name = "REPF_USPE_CLAVE")
   public String getClaveUsuario() {
      return claveUsuario;
   }

   public void setClaveUsuario(String claveUsuario) {
      this.claveUsuario = claveUsuario;
   }

   @Override
   public int hashCode() {
      int hash = 0;
      hash += (claveFlujo != null ? claveFlujo.hashCode() : 0);
      hash += (clavePaso != null ? clavePaso.hashCode() : 0);
      hash += (claveUsuario != null ? claveUsuario.hashCode() : 0);
      return hash;
   }

   @Override
   public boolean equals(Object object) {
      if (!(object instanceof ResponsablePasoPK)) {
         return false;
      }
      ResponsablePasoPK other = (ResponsablePasoPK) object;
      if ((this.claveFlujo == null && other.claveFlujo != null) || (this.claveFlujo != null && !this.claveFlujo.equals(other.claveFlujo))) {
         return false;
      }
      if ((this.clavePaso == null && other.clavePaso != null) || (this.clavePaso != null && !this.clavePaso.equals(other.clavePaso))) {
         return false;
      }
      if ((this.claveUsuario == null && other.claveUsuario != null) || (this.claveUsuario != null && !this.claveUsuario.equals(other.claveUsuario))) {
         return false;
      }
      return true;
   }

   @Override
   public String toString() {
      return "ResponsablePasoPK[ claveFlujo=" + claveFlujo + ", clavePaso=" + clavePaso + ", claveUsuario=" + claveUsuario + " ]";
   }
}
